package com.datastructure.test.clockwiserotationmatrix;

import java.util.ArrayList;

public class ClockwiseRotationMatrix {

    public static void main(String[] args) {
        ClockwiseRotationMatrix clockwiseRotationMatrix = new ClockwiseRotationMatrix();
        ArrayList<ArrayList<Integer>> mat = new ArrayList<>();
        ArrayList<Integer> list1 = new ArrayList<>();
        list1.add(1);
        list1.add(2);
        list1.add(3);
        ArrayList<Integer> list2 = new ArrayList<>();
        list2.add(4);
        list2.add(5);
        list2.add(6);
        ArrayList<Integer> list3 = new ArrayList<>();
        list3.add(7);
        list3.add(8);
        list3.add(9);
        mat.add(list1);
        mat.add(list2);
        mat.add(list3);
        clockwiseRotationMatrix.rotateMatrix(mat,3);
    }

    public void rotateMatrix (ArrayList<ArrayList<Integer>> mat, int n) {
        // write code here
        if(n==1){
            return;
        }
        int[][] array = new int[n][n];
        n-=1;
        ArrayList<Integer> list;
        for (int i = 0; i < mat.size(); i++) {
            list = mat.get(i);
            for (int j = 0; j < list.size(); j++) {
                array[j][n-i]= list.get(j);
            }
        }
        for (int i = 0; i < mat.size(); i++) {
            list = mat.get(i);
            for (int j = 0; j < list.size(); j++) {
                list.set(j,array[i][j]);
            }
        }
    }
}
